import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import VueDevTools from 'vite-plugin-vue-devtools'
// 配置vant组件自动导入
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { VantResolver } from '@vant/auto-import-resolver'
// import postcsspxtoviewport from 'postcss-px-to-viewport';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import ReactivityTransform from '@vue-macros/reactivity-transform/vite'
import path from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    [ReactivityTransform()],
	vue({
		// reactivityTransform: true
	}),
    VueDevTools(),
    AutoImport({
      resolvers: [VantResolver()],
    }),
    Components({
	  dts:false,//关闭自动生成类声明文件
      resolvers: [VantResolver()],
    }),
	createSvgIconsPlugin({
	// 指定图标文件夹，绝对路径（NODE代码）
	iconDirs: [path.resolve(process.cwd(), 'src/icons')]
	})
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  css: {
		postcss: {
			plugins: [
				// postcsspxtoviewport({
				// 	unitToConvert: 'px', // 要转化的单位
				// 	viewportWidth: 375, // UI设计稿的宽度，如果你的设计稿是375就改成375  
				// 	unitPrecision: 6, // 转换后的精度，即小数点位数
				// 	propList: ['*'], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
				// 	viewportUnit: 'vw', // 指定需要转换成的视窗单位，默认vw
				// 	fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位，默认vw
				// 	selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名，
				// 	minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
				// 	mediaQuery: true, // 是否在媒体查询的css代码中也进行转换，默认false
				// 	replace: true, // 是否转换后直接更换属性值
					
				// 	landscape: false, // 是否处理横屏情况
				// }),
			]
		}
	}
})
